% Het uiteindelijke resultaat van dit script is dat er per sector gekeken
% wordt wat de kost zou zijn voor mitigatiemiddelen op de verschillende
% bussen. Hiertoe wordt het vermogen van de bus verdeeld over de
% mitigatiemiddelen volgens een verdeelsleutel die ingelezen wordt uit een
% excel sheet. Het vermogen per mitigatiemiddel dat op die manier bekomen
% wordt, wordt op zijn beurt vermenigvuldigd met de eenheidsprijs per kW
% van dat mitigatiemiddel. Ook deze prijzen dienen uitgelezen worden uit
% een excel sheet met daarin de eenheidsprijzen voor de verschillende
% mitigatiemiddelen

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
'&&&&&&&&&&&   Opmaken van de kosten voor mitigatiemiddelen per sector op de verschillende belastingsbussen   &&&&&&&&&&'
'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'

gegevens;

%Bedoeling van onderstaande lus is om sector per sector de kosten voor
%mitigatiemiddelen van die sector te berekenen en die kosten op te slaan in
%de array van die sector

        %Inlezen van de verdeelsleutel voor mitigatiemiddelen per sector
        [NUMERIC1,TXT,Verdeling] = xlsread('Rooster_mitigatiemiddelen-sector.xls');
        [r,k]=size(Verdeling);
        geheel=(r-8)*10;
        %Inlezen van de kosten per mitigatiemiddel
        [NUMERIC2,TXT,Kosten] = xlsread('Kostprijs_mitigatiemiddelen.xls','sheet2');
        %Inlezen van de kosten per mitigatiemiddel
        [NUMERIC3,TXT,Percentages] = xlsread('Verdeling_mitigatiemiddelen.xls');
        %Eerste kolom van de sheet bestaat uit de namen van de
        %verschillende mitigatiemiddelen, de eerste rij bestaat uit de
        %vermogenklassen. Telkens wordt de maximale vermogengrens
        %aangegeven. Het bereik van de kost staande in een bepaalde kolom
        %loopt dus van het vermogen aangegeven in de bovenste rij van de
        %kolom links van die kost tot het vermogen aangegeven in de
        %bovenste rij van de kolom waar die kost staat (niet geldig voor de
        %tweede kolom, daar loopt het bereik van nul tot het vermogen
        %aangegeven bovenaan de kolom).
        [p,q]=size(Kosten);

        %aanmaken van de genormaliseerde kost per vermogen op de verschillende
        %belastingsbussen (zelfde code als in plotten):
            kosten_norm=zeros(aantal_belastingsbussen,aantal_sectoren);
            namen_sectoren = transpose(sectoren);
                for w=1:1:aantal_belastingsbussen
                nummerbelastingsbus = int2str(belastingsbussen(w));
                test_string = strcat('problemen_bus_',nummerbelastingsbus);
                    if 1==exist(test_string)
                    naam_kosten_matrix = eval('test_string');
                    [r,k]=size(eval(naam_kosten_matrix));
                        for v=1:1:aantal_sectoren
                            temp=0;
                            for x=1:1:r
                                toppie = eval(naam_kosten_matrix);
                                temp = temp + (toppie(x,7+v)/vermogen(w));
                            end
                        kosten_norm(w,v) = temp;
                        end
                    end
                end
    
        
        
        
%Buitenste lus loopt over alle sectoren
for i=1:1:aantal_sectoren
    naam_sector = sectoren(1,i)
    test_string=strcat('kosten_sector_',naam_sector);
    test_string=char(test_string);
    if 1==exist(test_string)
    mmatrix = eval(test_string);
    %mmatrix uitbreiden met een extra kolom voor het opslaan van de kosten
    %voor mititatiemiddelen
    [b,z]=size(mmatrix);
    nmatrix = zeros(b,z+1);
    nmatrix(1:b,1:z) = mmatrix(1:b,1:z);
    

    %Binnenste lus loopt over alle belastingsbussen
    for j=1:1:aantal_belastingsbussen
        nummer_belastingsbus = belastingsbussen(j,1);
        string_nummer_belastingsbus=int2str(nummer_belastingsbus);
        vermogen_belastingsbus=vermogen(j);
        %Berekenen van de totale kost voor mitigatiemiddelen, de mitigatiemiddelen staan in beide sheets in dezelfde volgorde, 
        %dit maakt het uitlezen vrij gemakkelijk;
        totale_kost_mitigatiemiddelen_per_jaar=0;
        kost_niet_beschermd_vermogen_per_jaar=0;
        totaal_niet_beschermd_vermogen=0; 
        [r,k]=size(Verdeling);
        for w=9:1:r%Lus die loopt over alle mitigatiemiddelen
            kost_mitigatiemiddel_per_jaar=0;

            %Lus die de kolom zoekt in de sheet Verdeling van de sector
            %waarvoor de kosten berekend worden
            for x=2:1:k
                if strcmp(naam_sector, Verdeling (1,x))
                    kolomnummer_Verdeling = x;
                end
            end
            aandeel_mitigatiemiddel = cell2mat(Verdeling(r,kolomnummer_Verdeling))/geheel;
            vermogen_mitigatiemiddel = aandeel_mitigatiemiddel*vermogen_belastingsbus;

            %%%%%%%%%%%%%%Vanaf hier aanpassing!!!!

            %Lus die over de verschillende vermogenbereiken loopt en die
            %het vermogen van het mitigatiemiddel verdeelt volgens een
            %verdeelsleutel over de verschillende vermogens. Vervolgens
            %wordt de kostprijs voor het mitigatiemiddel in dit
            %vermogenbereik bij de totale investeringskost geteld.
            for f=2:1:7
                PercentageMitigatiemiddelInVermogenklasse = cell2mat(Percentages(w,f));
                VermogenMitigatiemiddelInVermogenklasse = PercentageMitigatiemiddelInVermogenklasse * vermogen_mitigatiemiddel;
                 if 0==cell2mat(Kosten(w,f))%Mitigatiemiddel is niet beschikbaar in deze vermogencategorie
                        totaal_niet_beschermd_vermogen = totaal_niet_beschermd_vermogen + VermogenMitigatiemiddelInVermogenklasse;
                 else eenheidsprijs_mitigatiemiddel_per_jaar = -1*(cell2mat(Kosten(w,f))); %Maal -1 want die prijzen zijn negatief met dank aan excel
                      kost_mitigatiemiddel_per_jaar = kost_mitigatiemiddel_per_jaar+((VermogenMitigatiemiddelInVermogenklasse*eenheidsprijs_mitigatiemiddel_per_jaar)*(1+(percentage_operation_maintenance/100)));
                 end
            end
            
            %%%%%%%%%%%%%%%Tot hier aanpassing!!!!!!!
%             %Lus die zoekt in welk vermogenbereik het mitigatiemiddel zit
%             for f=2:1:q
%                 if f==2
%                     if vermogen_mitigatiemiddel < cell2mat(Kosten(1,f));
%                         if 0==cell2mat(Kosten(w,f))%Mitigatiemiddel is niet beschikbaar in deze vermogencategorie
%                         eenheidsprijs_mitigatiemiddel_per_jaar = 0;
%                         totaal_niet_beschermd_vermogen = totaal_niet_beschermd_vermogen + vermogen_mitigatiemiddel;
%                         else eenheidsprijs_mitigatiemiddel_per_jaar = -1*(cell2mat(Kosten(w,f)));%Maal -1 want die prijzen zijn negatief met dank aan excel
%                         end
%                     end
%                 else if vermogen_mitigatiemiddel < cell2mat(Kosten(1,f));
%                         if vermogen_mitigatiemiddel > cell2mat(Kosten(1,f-1));
%                              if 0==cell2mat(Kosten(w,f))%Mitigatiemiddel is niet beschikbaar in deze vermogencategorie
%                                 eenheidsprijs_mitigatiemiddel_per_jaar = 0;
%                                 totaal_niet_beschermd_vermogen = totaal_niet_beschermd_vermogen + vermogen_mitigatiemiddel;
%                              else eenheidsprijs_mitigatiemiddel_per_jaar =  -1*(cell2mat(Kosten(w,f)));%Maal -1 want die prijzen zijn negatief met dank aan excel
%                              end
%                         end
%                      if f==q
%                         if 0==cell2mat(Kosten(w,f))%Mitigatiemiddel is niet beschikbaar in deze vermogencategorie
%                            eenheidsprijs_mitigatiemiddel_per_jaar = 0;
%                            totaal_niet_beschermd_vermogen = totaal_niet_beschermd_vermogen + vermogen_mitigatiemiddel;
%                         else eenheidsprijs_mitigatiemiddel_per_jaar =  -1*(cell2mat(Kosten(w,f)));%Maal -1 want die prijzen zijn negatief met dank aan excel
%                         end
%                      end
%                     end
%                 end
%             end
%             %Berekenen van de kost van dit mitigatiemiddel voor die bus
%             %en sector
%             kost_mitigatiemiddel_per_jaar = (vermogen_mitigatiemiddel*eenheidsprijs_mitigatiemiddel_per_jaar)*(1+(percentage_operation_maintenance/100));
            %Kost niet beschermd vermogen berekenen:
            %eerst het vermogen van het mitigatiemiddel vermenigvuldigen
            %met de effectiviteit van dat mitigatiemiddel en dit vermogen
            %bij het niet beschermd vermogen tellen (in de
            %effectiviteiten-matrix is het w-1 want hier is geen bovenste
            %niet gebruikte rij
            if 1 == str2double(cell2mat(effectiviteiten_mitigatiemiddelen((w-1),2))) %testen of de effectiviteit 1 is, zoniet het totaal niet beschermd vermogen verhogen
                totaal_niet_beschermd_vermogen = totaal_niet_beschermd_vermogen + (vermogen_mitigatiemiddel*(1-str2double(cell2mat(effectiviteiten_mitigatiemiddelen((w-1),2)))))
            end
        totale_kost_mitigatiemiddelen_per_jaar = totale_kost_mitigatiemiddelen_per_jaar + kost_mitigatiemiddel_per_jaar;
        end
        %Kost van het niet beschermd vermogen berekenen door het totaal
        %niet beschermd vermogen te vermenigvuldigen (dus niet per
        %mitigatiemiddel want dat zorgt voor een heel grote
        %extrapolatiefout)
        kost_niet_beschermd_vermogen_per_jaar = totaal_niet_beschermd_vermogen * kosten_norm(j,i)
        %Bijtellen van de kost van het mitigatiemiddel bij de som van de kosten van de mitigatiemiddelen 
        totale_kost_mitigatiemiddelen_per_jaar = totale_kost_mitigatiemiddelen_per_jaar + kost_niet_beschermd_vermogen_per_jaar;
        %Opslaan van de mitigatiekost voor de gegeven sector en de gegeven
        %bus in een extra kolom rechts van de kosten voor PQ-incidenten
        nmatrix(j,z+1) = totale_kost_mitigatiemiddelen_per_jaar;
        eval([test_string '= nmatrix']);
    end
    end
    
end
    
    